import Vue from 'vue'
import Vuex from 'vuex'
import { getItem } from '@/utils/storage'
Vue.use(Vuex)
// 一开始需要初始化 collectObj 值
const collectObj = getItem('COLLECT_OBJ') || {
  swiper: 0,
  less: 0,
  router: 0,
  canShow: true
}
export default new Vuex.Store({
  state: {
    uname: '艾奇',
    count: 10,
    ie678: null,
    systemPage: 1,
    books: ['钢铁', '海底', '摩斯'],
    collectObj
  },
  mutations: {
    // 只能通过 mutations 改变 state 中的数据
    CHANGE_STATE (state, { key, value }) {
      // if(state.hasOwnProperty(key))
      if (Object.prototype.hasOwnProperty.call(state, key)) {
        state[key] = value
      }
      console.warn(state)
    },
    CHANGE_COUNT (state, value) {
      state.count += value
    }
  },
  actions: {
    SYNC_ACTION (context, number) {
      console.log('context', context)
      setTimeout(() => {
        context.commit('CHANGE_COUNT', number)
      })
    }
  },
  modules: {
  },
  getters: {} // （可以认为是 store 的计算属性）。
})
